home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2001 Spring / Oh!X 2001 Spring Special CD-ROM (Japan).7z / Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin / FBENC / TEC-FB^3.sea / TEC-FB^3 / MacType.Incl next >
Text File  |  2000-07-04  |  19KB  |  622 lines

  1. /*
  2.  File:  MacTypes.Incl
  3.  Contains: Basic Macintosh data types.
  4.  Version: Technology: Mac OS 8.1
  5.  Release: Universal Interfaces 3.1
  6.  Copyright: ゥ 1985-1998 by Apple Computer, Inc., all rights reserved.
  7.  
  8.  Convert For FB^3 Takaaki Mizuno
  9. */
  10.  
  11. /********************************************************************************
  12.  
  13.  Base integer types for all target OS's and CPU's
  14.  
  15.   UInt8    8-bit unsigned integer 
  16.   SInt8    8-bit signed integer
  17.   UInt16   16-bit unsigned integer 
  18.   SInt16   16-bit signed integer   
  19.   UInt32   32-bit unsigned integer 
  20.   SInt32   32-bit signed integer 
  21.   UInt64   64-bit unsigned integer 
  22.   SInt64   64-bit signed integer 
  23.  
  24. *********************************************************************************/
  25.  
  26. #DEFINE UInt8 AS unsigned char
  27. //#DEFINE UInt16 AS unsigned short
  28. //#DEFINE UInt32 AS UNSIGNED LONG
  29. #DEFINE SInt32 AS LONG
  30.  
  31. //BIG_ENDIAN
  32. BEGIN RECORD wide
  33. DIM hi AS SInt32
  34. DIM lo AS UInt32
  35. END RECORD
  36.  
  37. BEGIN RECORD UnsignedWide
  38. DIM hi AS UInt32
  39. DIM lo AS UInt32
  40. END RECORD
  41.  
  42. /*
  43. //LITTLE_ENDIAN
  44. BEGIN RECORD wide
  45. DIM lo AS UInt32
  46. DIM hi AS SInt32
  47. END RECORD
  48.  
  49. BEGIN RECORD UnsignedWide
  50. DIM lo AS UInt32
  51. DIM hi AS UInt32
  52. END RECORD
  53. */
  54.  
  55. #DEFINE SInt64 AS wide
  56. #DEFINE UInt64 AS UnsignedWide
  57.  
  58. /********************************************************************************
  59.  
  60.  Base fixed point types 
  61.  
  62.   Fixed   16-bit signed integer plus 16-bit fraction
  63.   UnsignedFixed 16-bit unsigned integer plus 16-bit fraction
  64.   Fract   2-bit signed integer plus 30-bit fraction
  65.   ShortFixed  8-bit signed integer plus 8-bit fraction
  66.   
  67. *********************************************************************************/
  68.  
  69. //typedef long        Fixed;
  70. //typedef Fixed *       FixedPtr;
  71. #DEFINE Fract AS long
  72. #DEFINE FractPtr AS POINTER TO Fract
  73. #DEFINE UnsignedFixed AS unsigned long
  74. #DEFINE ShortFixed AS short
  75.  
  76. /********************************************************************************
  77.  
  78.  Base floating point types 
  79.  
  80.   Float32   32 bit IEEE float:  1 sign bit, 8 exponent bits, 23 fraction bits
  81.   Float64   64 bit IEEE float:  1 sign bit, 11 exponent bits, 52 fraction bits 
  82.   Float80   80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
  83.   Float96   96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits
  84.   
  85.  Note: These are fixed size floating point types, useful when writing a floating
  86.     point value to disk.  If your compiler does not support a particular size 
  87.     float, a struct is used instead.
  88.     Use of of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if
  89.     you want a floating point representation that is natural for any given
  90.     compiler, but might be a different size on different compilers.
  91.  
  92. *********************************************************************************/
  93.  
  94. /*typedef float    Float32;
  95. #if defined(__MWERKS__) || defined(THINK_C)
  96.  typedef short double Float64;
  97. #else
  98.  typedef double   Float64;
  99. #endif
  100. #if TARGET_CPU_68K
  101.  #if TARGET_RT_MAC_68881
  102.   typedef long double Float96;  
  103.   struct Float80 {
  104.    SInt16  exp;
  105.    UInt16  man[4];
  106.   };
  107.   typedef struct Float80 Float80;
  108.  #else
  109.   typedef long double Float80;  
  110.   struct Float96 {
  111.    SInt16  exp[2];  // the second 16-bits is always zero 
  112.    UInt16  man[4];
  113.   };
  114.   typedef struct Float96 Float96;
  115.  #endif
  116. #else
  117.  struct Float80 {
  118.   SInt16  exp;
  119.   UInt16  man[4];
  120.  };
  121.  typedef struct Float80 Float80;
  122.  
  123.  struct Float96 {
  124.   SInt16  exp[2];  // the second 16-bits is always zero 
  125.   UInt16  man[4];
  126.  };
  127.  typedef struct Float96 Float96;
  128. #endif
  129. */
  130.  
  131. /********************************************************************************
  132.  
  133.  MacOS Memory Manager types
  134.  
  135.   Ptr    Pointer to a non-relocatable block
  136.   Handle   Pointer to a master pointer to a relocatable block
  137.   Size   The number of bytes in a block (signed for historical reasons)
  138.   
  139. *********************************************************************************/
  140. //typedef char *       Ptr;
  141. //typedef Ptr *       Handle;
  142. #DEFINE Size AS long
  143.  
  144. /********************************************************************************
  145.  
  146.  Higher level basic types
  147.  
  148.   OSErr     16-bit result error code
  149.   OSStatus    32-bit result error code
  150.   LogicalAddress   Address in the clients virtual address space
  151.   ConstLogicalAddress  Address in the clients virtual address space that will only be read
  152.   PhysicalAddress   Real address as used on the hardware bus
  153.   BytePtr     Pointer to an array of bytes
  154.   ByteCount    The size of an array of bytes
  155.   ByteOffset    An offset into an array of bytes
  156.   ItemCount    32-bit iteration count
  157.   OptionBits    Standard 32-bit set of bit flags
  158.   PBVersion    ?
  159.   Duration    32-bit millisecond timer for drivers
  160.   AbsoluteTime   64-bit clock
  161.   ScriptCode    A particular set of written characters (e.g. Roman vs Cyrillic) and their encoding
  162.   LangCode    A particular language (e.g. English), as represented using a particular ScriptCode
  163.   RegionCode    Designates a language as used in a particular region (e.g. British vs American
  164.         English) together with other region-dependent characteristics (e.g. date format)
  165.   FourCharCode   A 32-bit value made by packing four 1 byte characters together
  166.   OSType     A FourCharCode used in the OS and file system (e.g. creator)
  167.   ResType     A FourCharCode used to tag resources (e.g. 'DLOG')
  168.   
  169. *********************************************************************************/
  170. //#DEFINE OSErr AS SInt16
  171. #DEFINE OSStatus AS SInt32
  172. #DEFINE LogicalAddress AS POINTER
  173. #DEFINE ConstLogicalAddress AS POINTER//typedef const void *     ConstLogicalAddress;
  174. #DEFINE PhysicalAddress AS POINTER
  175. #DEFINE BytePtr AS POINTER TO UInt8
  176. #DEFINE ByteCount AS UInt32
  177. #DEFINE ByteOffset AS UInt32
  178. #DEFINE Duration AS SInt32
  179. #DEFINE AbsoluteTime AS UnsignedWide
  180. #DEFINE OptionBits AS UInt32
  181. #DEFINE ItemCount AS UInt32
  182. #DEFINE PBVersion AS UInt32
  183. //#DEFINE ScriptCode AS SInt16
  184. #DEFINE LangCode AS SInt16
  185. #DEFINE RegionCode AS SInt16
  186. #DEFINE FourCharCode AS unsigned long
  187. //#DEFINE OSType AS FourCharCode
  188. //#DEFINE ResType AS FourCharCode
  189. #DEFINE OSTypePtr AS POINTER TO OSType
  190. #DEFINE ResTypePtr AS POINTER TO ResType
  191.  
  192. /********************************************************************************
  193.  
  194.  Boolean types and values
  195.  
  196.   Boolean   A one byte value, holds "false" (0) or "true" (1)
  197.   false   The Boolean value of zero (0)
  198.   true   The Boolean value of one (1)
  199.   
  200. *********************************************************************************/
  201. /*
  202.  The identifiers "true" and "false" are becoming keywords in C++
  203.  and work with the new built-in type "bool"
  204.  "Boolean" will remain an unsigned char for compatibility with source
  205.  code written before "bool" existed.
  206. */
  207. /*
  208. #if !TYPE_BOOL
  209.  
  210. #if TARGET_OS_WIN32
  211. // MS VC normally warns if true or false is defined
  212.  #pragma warning (disable: 4237)
  213. #endif
  214.  
  215. enum {
  216.  false      = 0,
  217.  true      = 1
  218. };
  219.  
  220.  
  221. #if TARGET_OS_WIN32
  222.  #pragma warning (default: 4237)
  223. #endif
  224. #endif  //  !TYPE_BOOL
  225.  
  226. typedef unsigned char      Boolean;
  227. */
  228.  
  229. /********************************************************************************
  230.  
  231.  Function Pointer Types
  232.  
  233.   ProcPtr     Generic pointer to a function
  234.   Register68kProcPtr  Pointer to a 68K function that expects parameters in registers
  235.   UniversalProcPtr  Pointer to classic 68K code or a RoutineDescriptor
  236.   
  237.   ProcHandle    Pointer to a ProcPtr
  238.   UniversalProcHandle  Pointer to a UniversalProcPtr
  239.   
  240. *********************************************************************************/
  241. /*
  242. typedef CALLBACK_API_C( long , ProcPtr )();
  243. typedef CALLBACK_API( void , Register68kProcPtr )();
  244. #if TARGET_OS_MAC && TARGET_RT_MAC_CFM
  245. ** Note that the RoutineDescriptor structure is defined in the MixedMode.h header 
  246. typedef struct RoutineDescriptor *UniversalProcPtr;
  247. #else
  248. typedef ProcPtr       UniversalProcPtr;
  249. #endif// TARGET_OS_MAC && TARGET_RT_MAC_CFM
  250.  
  251. typedef ProcPtr *      ProcHandle;
  252. typedef UniversalProcPtr *    UniversalProcHandle;
  253. */
  254.  
  255.  
  256. /********************************************************************************
  257.  
  258.  Common Constants
  259.  
  260.   noErr     OSErr: function performed properly - no error
  261.   kNilOptions    OptionBits: all flags false
  262.   kInvalidID    KernelID: NULL is for pointers as kInvalidID is for ID's
  263.   kVariableLengthArray array bounds: variable length array
  264.  
  265.  Note: kVariableLengthArray is used in array bounds to specify a variable length array.
  266.     It is ususally used in variable length structs when the last field is an array
  267.     of any size.  Before ANSI C, we used zero as the bounds of variable length 
  268.     array, but zero length array are illegal in ANSI C.  Example usage:
  269.  
  270.   struct FooList 
  271.   {
  272.    short  listLength;
  273.    Foo  elements[kVariableLengthArray];
  274.   };
  275.   
  276. *********************************************************************************/
  277.  
  278.  
  279. //_noErr                 = 0
  280. _kNilOptions           = 0
  281. _kInvalidID            = 0
  282. _kVariableLengthArray  = 1
  283. _kUnknownType          = 0x3F3F3F3F     /* '????' QuickTime 3.0: default unknown ResType or OSType */
  284.  
  285. /********************************************************************************
  286.  
  287.  String Types
  288.  
  289.   UniChar     A single 16-bit Unicode character
  290.   UniCharCount   A count of Unicode characters in an array or buffer
  291.  
  292.   StrNNN     Pascal string holding up to NNN bytes
  293.   StringPtr    Pointer to a pascal string
  294.   StringHandle   Pointer to a StringPtr
  295.   ConstStrNNNParam  For function parameters only - means string is const
  296.   
  297.   CStringPtr    Pointer to a C string       (same as:  char*)
  298.   ConstCStringPtr   Pointer to a const C string (same as:  const char*)
  299.   
  300.  Note: The length of a pascal string is stored in the first byte.
  301.     A pascal string does not have a termination byte and can be at most 255 bytes long.
  302.     The first character in a pascal string is offset one byte from the start of the string. 
  303.     
  304.     A C string is terminated with a byte of value zero.  
  305.     A C string has no length limitation.
  306.     The first character in a C string is the first byte of the string. 
  307.     
  308.   
  309. *********************************************************************************/
  310.  
  311. #DEFINE UniChar AS UInt16
  312. #DEFINE UniCharCount AS UInt32
  313. //typedef unsigned char      Str255[256];
  314. //typedef unsigned char      Str63[64];
  315. //typedef unsigned char      Str32[33];
  316. //typedef unsigned char      Str31[32];
  317. BEGIN RECORD Str27
  318. DIM c.28
  319. END RECORD
  320. //typedef unsigned char      Str27[28];
  321. //typedef unsigned char      Str15[16];
  322. /*
  323.  The type Str32 is used in many AppleTalk based data structures.
  324.  It holds up to 32 one byte chars.  The problem is that with the
  325.  length byte it is 33 bytes long.  This can cause weird alignment
  326.  problems in structures.  To fix this the type "Str32Field" has
  327.  been created.  It should only be used to hold 32 chars, but
  328.  it is 34 bytes long so that there are no alignment problems.
  329. */
  330. //typedef unsigned char      Str32Field[34];
  331. BEGIN RECORD Str32Field
  332. DIM c.34
  333. END RECORD
  334. /*
  335.  QuickTime 3.0:
  336.  The type StrFileName is used to make MacOS structs work 
  337.  cross-platform.  For example FSSpec or SFReply previously
  338.  contained a Str63 field.  They now contain a StrFileName
  339.  field which is the same when targeting the MacOS but is
  340.  a 256 char buffer for Win32 and unix, allowing them to
  341.  contain long file names.
  342. */
  343. #DEFINE StrFileName As Str63
  344.  
  345. /*
  346. #if TARGET_OS_MAC
  347. typedef Str63        StrFileName;
  348. #else
  349. typedef Str255        StrFileName;
  350. #endif  // TARGET_OS_MAC
  351. */
  352.  
  353. //#DEFINE StringPtr AS POINTER TO unsigned char
  354. #DEFINE StringHandle AS POINTER TO StringPtr
  355. #DEFINE ConstStr255Param AS POINTER TO unsigned char
  356. #DEFINE ConstStr63Param AS POINTER TO unsigned char
  357. #DEFINE ConstStr32Param AS POINTER TO unsigned char
  358. #DEFINE ConstStr31Param AS POINTER TO unsigned char
  359. #DEFINE ConstStr27Param AS POINTER TO unsigned char
  360. #DEFINE ConstStr15Param AS POINTER TO unsigned char
  361.  
  362. #DEFINE ConstStrFileNameParam AS ConstStr63Param
  363.  
  364. /*
  365. #if TARGET_OS_MAC
  366. typedef ConstStr63Param     ConstStrFileNameParam;
  367. #else
  368. typedef ConstStr255Param     ConstStrFileNameParam;
  369. #endif  // TARGET_OS_MAC
  370. */
  371.  
  372. /*
  373. #ifdef __cplusplus
  374. inline unsigned char StrLength(ConstStr255Param string) { return (*string); }
  375. #else
  376. #define StrLength(string) (*(unsigned char *)(string))
  377. #endif  // defined(__cplusplus)  
  378.  
  379. #if OLDROUTINENAMES
  380. #define Length(string) StrLength(string)
  381. #endif  //OLDROUTINENAMES
  382. */
  383.  
  384.  
  385. /********************************************************************************
  386.  
  387.  Quickdraw Types
  388.  
  389.   Point    2D Quickdraw coordinate, range: -32K to +32K
  390.   Rect    Rectangluar Quickdraw area
  391.   Style    Quickdraw font rendering styles
  392.   StyleParameter  Style when used as a parameter (historical 68K convention)
  393.   StyleField   Style when used as a field (historical 68K convention)
  394.   CharParameter  Char when used as a parameter (historical 68K convention)
  395.   
  396.  Note:   The original Macintosh toolbox in 68K Pascal defined Style as a SET.  
  397.    Both Style and CHAR occupy 8-bits in packed records or 16-bits when 
  398.    used as fields in non-packed records or as parameters. 
  399.   
  400. *********************************************************************************/
  401. /*
  402. struct Point {
  403.  short        v;
  404.  short        h;
  405. };
  406. typedef struct Point     Point;
  407. */
  408. #DEFINE PointPtr AS POINTER TO Point
  409.  
  410. /*
  411. struct Rect {
  412.  short        top;
  413.  short        left;
  414.  short        bottom;
  415.  short        right;
  416. };
  417. typedef struct Rect      Rect;
  418. */
  419.  
  420. #DEFINE RectPtr AS POINTER TO RECT
  421.  
  422. #DEFINE CharParameter AS SHORT
  423.  
  424. /*
  425. BEGIN enum
  426. _normal      = 0
  427. _bold      = 1
  428. _italic      = 2
  429. _underline     = 4
  430. _outline      = 8
  431. _shadow      = 0x10
  432. _condense     = 0x20
  433. _extend      = 0x40
  434. END ENUM
  435. */
  436.  
  437. #DEFINE Style AS unsigned char
  438. #DEFINE StyleParameter AS SHORT
  439. #DEFINE StyleField AS Style
  440.  
  441. /********************************************************************************
  442.  
  443.  THINK C base objects
  444.  
  445.   HandleObject  Root class for handle based THINK C++ objects
  446.   PascalObject  Root class for pascal style objects in THINK C++ 
  447.  
  448. *********************************************************************************/
  449. /*
  450. #if defined(__SC__) && !defined(__STDC__) && defined(__cplusplus)
  451.  class __machdl HandleObject {};
  452.  #if TARGET_CPU_68K
  453.   class __pasobj PascalObject {};
  454.  #endif
  455. #endif
  456. */
  457.  
  458. /********************************************************************************
  459.  
  460.  MacOS versioning structures
  461.  
  462.   VersRec     Contents of a 'vers' resource
  463.   VersRecPtr    Pointer to a VersRecPtr
  464.   VersRecHndl    Resource Handle containing a VersRec
  465.   NumVersion    Packed BCD version representation (e.g. "4.2.1a3" is 0x04214003)
  466.   UniversalProcPtr  Pointer to classic 68K code or a RoutineDescriptor
  467.   
  468.   ProcHandle    Pointer to a ProcPtr
  469.   UniversalProcHandle  Pointer to a UniversalProcPtr
  470.   
  471. *********************************************************************************/
  472. //BIG_ENDIAN
  473.  
  474. BEGIn RECORD NumVersion
  475.  /* Numeric version part of 'vers' resource */
  476. DIM majorRev AS UInt8/*1st part of version number in BCD*/
  477. DIM minorAndBugRev AS UInt8/*2nd & 3rd part of version number share a byte*/
  478. DIM stage AS UInt8/*stage code: dev, alpha, beta, final*/
  479. DIM nonRelRev AS UInt8               /*revision level of non-released version*/
  480. END RECORD
  481.  
  482. /*
  483. //LITTLE_ENDIAN
  484. struct NumVersion {
  485.  // Numeric version part of 'vers' resource accessable in little endian format
  486.  UInt8        nonRelRev;     //revision level of non-released version
  487.  UInt8        stage;      //stage code: dev, alpha, beta, final
  488.  UInt8        minorAndBugRev;    //2nd & 3rd part of version number share a byte
  489.  UInt8        majorRev;     //1st part of version number in BCD
  490. };
  491. typedef struct NumVersion    NumVersion;
  492. #endif  // TARGET_RT_BIG_ENDIAN
  493. */
  494.  
  495. /*
  496. BEGIN enum
  497.           // Version Release Stage Codes
  498. _developStage = 0x20
  499. _alphaStage   = 0x40
  500. _betaStage    = 0x60
  501. _finalStage   = 0x80
  502. END ENUM
  503. */
  504.  
  505. BEGIN RECORD NumVersionVariant/* NumVersionVariant is a wrapper so NumVersion can be accessed as a 32-bit value */
  506. BEGIN UNION
  507. DIM parts AS NumVersion
  508. DIM whole AS unsigned long
  509. END UNION
  510. END RECORD
  511.  
  512. BEGIN RECORD VersRec/* 'vers' resource format */
  513. DIM numericVersion AS NumVersion/*encoded version number*/
  514. DIM countryCode AS short/*country code from intl utilities*/
  515. DIM shortVersion AS STR255/*version number string - worst case*/
  516. DIM reserved AS Str255/*longMessage string packed after shortVersion*/
  517. END RECORD
  518.  
  519. #DEFINE VersRecPtr AS POINTER TO VersRec
  520. #DEFINE VersRecHndl AS POINTER TO VersRecPtr
  521.  
  522. /*********************************************************************************
  523.  
  524.  Old names for types
  525.   
  526. *********************************************************************************/
  527.  
  528. //typedef UInt8        Byte;
  529. #DEFINE SignedByte AS SInt8
  530. #DEFINE WidePtr AS POINTER TO wide
  531. #DEFINE UnsignedWidePtr AS POINTER TO UnsignedWide
  532.  
  533. //typedef Float80       extended80;
  534. //typedef Float96       extended96;
  535.  
  536. #DEFINE VHSelect AS SInt8
  537.  
  538. /*********************************************************************************
  539.  
  540.  Debugger functions:
  541.  
  542.  Name   MacsBug   Macintosh Debugger     Copland Debugger
  543.  ----------  -----------  -----------------------------  -------------------
  544.  Debugger  yes    InterfaceLib maps to DebugStr  yes
  545.  DebugStr  yes    yes         yes
  546.  Debugger68k  yes    InterfaceLib maps to DebugStr  obsolete?
  547.  DebugStr68k  yes    InterfaceLib maps to DebugStr  obsolete?
  548.  debugstr  yes    InterfaceLib maps to DebugStr  yes
  549.  SysBreak  no    InterfaceLib maps to SysError  obsolete?
  550.  SysBreakStr  no    InterfaceLib maps to SysError  obsolete?
  551.  SysBreakFunc no    InterfaceLib maps to SysError  obsolete?
  552.  SysDebug  ?    ?         ?
  553.  SysDebugStr  ?    ?         ?
  554.  LLDebugger  no    yes         Low Level Nub
  555.  LLDebugStr  no    yes         Low Level Nub
  556.  
  557. *********************************************************************************/
  558.  
  559. /*
  560. EXTERN_API( void )
  561. Debugger      (void)              ONEWORDINLINE(0xA9FF);
  562.  
  563. EXTERN_API( void )
  564. DebugStr      (ConstStr255Param   debuggerMsg)      ONEWORDINLINE(0xABFF);
  565.  
  566. #if TARGET_OS_MAC
  567. #if CGLUESUPPORTED
  568. EXTERN_API_C( void )
  569. debugstr      (const char *   debuggerMsg);
  570.  
  571. #endif  // CGLUESUPPORTED 
  572.  
  573. #if TARGET_CPU_PPC
  574. // Only for System 7 native drivers
  575. EXTERN_API_C( void )
  576. SysDebug      (void);
  577.  
  578. EXTERN_API_C( void )
  579. SysDebugStr      (ConstStr255Param   str);
  580.  
  581. #endif  // TARGET_CPU_PPC
  582.  
  583. // SADE break points
  584. EXTERN_API( void )
  585. SysBreak      (void)              THREEWORDINLINE(0x303C, 0xFE16, 0xA9C9);
  586.  
  587. EXTERN_API( void )
  588. SysBreakStr      (ConstStr255Param   debuggerMsg)      THREEWORDINLINE(0x303C, 0xFE15, 0xA9C9);
  589.  
  590. EXTERN_API( void )
  591. SysBreakFunc     (ConstStr255Param   debuggerMsg)      THREEWORDINLINE(0x303C, 0xFE14, 0xA9C9);
  592.  
  593. // old names for Debugger and DebugStr 
  594. #if OLDROUTINENAMES && TARGET_CPU_68K
  595.  #define Debugger68k() Debugger()
  596.  #define DebugStr68k(s) DebugStr(s)
  597. #endif
  598. #endif  /* TARGET_OS_MAC
  599.  
  600.  
  601. #if PRAGMA_STRUCT_ALIGN
  602.  #pragma options align=reset
  603. #elif PRAGMA_STRUCT_PACKPUSH
  604.  #pragma pack(pop)
  605. #elif PRAGMA_STRUCT_PACK
  606.  #pragma pack()
  607. #endif
  608.  
  609. #ifdef PRAGMA_IMPORT_OFF
  610. #pragma import off
  611. #elif PRAGMA_IMPORT
  612. #pragma import reset
  613. #endif
  614.  
  615. #ifdef __cplusplus
  616. }
  617. #endif
  618.  
  619. #endif  __MACTYPES__ */
  620.  
  621.  
  622.